Skip to content

File Layout

Where everything lives.

src/
├── main.ts                  # Mounts Svelte app
├── App.svelte               # Root component
├── vite-env.d.ts            # Type declarations
└── lib/
    ├── svelte/
    │   ├── draw/
    │   │   └── Printable.svelte
    │   └── main/
    │       ├── Controls.svelte
    │       ├── Details.svelte
    │       ├── Graph.svelte
    │       └── Main.svelte
    └── ts/
        ├── common/
        │   ├── index.ts
        │   ├── Constants.ts
        │   ├── Extensions.ts
        │   └── Testworthy_Utilities.ts
        ├── draw/
        │   ├── index.ts
        │   ├── Colors.ts
        │   └── SVG_Paths.ts
        ├── managers/
        │   ├── index.ts
        │   ├── Components.ts
        │   ├── Editor.ts
        │   ├── Hits.ts
        │   ├── Hits_3D.ts
        │   ├── Preferences.ts
        │   └── Scenes.ts
        ├── render/
        │   ├── index.ts
        │   ├── Animation.ts
        │   ├── Camera.ts
        │   ├── Render.ts
        │   ├── Scene.ts
        │   └── Setup.ts
        ├── runtime/
        │   ├── index.ts
        │   ├── Identifiable.ts
        │   └── Smart_Object.ts
        ├── signals/
        │   ├── index.ts
        │   ├── Events.ts
        │   ├── Events_3D.ts
        │   └── Mouse_Timer.ts
        ├── state/
        │   ├── index.ts
        │   ├── S_Component.ts
        │   ├── S_Hit_Target.ts
        │   └── S_Mouse.ts
        ├── tests/
        │   ├── Angle.test.ts
        │   ├── Colors.test.ts
        │   ├── Coordinates.test.ts
        │   ├── Extensions.test.ts
        │   ├── Testworthy_Utilities.test.ts
        │   └── setup.ts
        └── types/
            ├── index.ts
            ├── Angle.ts
            ├── Attribute.ts
            ├── Coordinates.ts
            ├── Enumerations.ts
            ├── Interfaces.ts
            └── Types.ts

Entry

FileWhat it does
main.tsMounts App.svelte
App.svelteRenders Main, initializes app

Svelte Components

FileWhat it does
main/Main.svelteRoot layout, viewport management
main/Controls.svelteTop toolbar region
main/Details.svelteLeft sidebar region
main/Graph.svelteCanvas region with 3D rendering
draw/Printable.sveltePrint-friendly output

Common

FileWhat it does
Constants.tsApp-wide constants (k singleton)
Extensions.tsNumber/String prototype extensions
Testworthy_Utilities.tsGeneral utilities (tu singleton)

Draw

FileExportWhat it does
Colors.tscolorsColor utilities, reactive stores
SVG_Paths.tssvg_pathsSVG path string generators

Managers

FileExportWhat it does
Preferences.tspreferenceslocalStorage wrapper
Hits.tshitsRBush spatial index, click routing
Hits_3D.tshits_3d3D hit testing for canvas objects
Components.tscomponentsComponent registry
Editor.tseditorDimensional editing lifecycle
Scenes.tsscenesScene save/load/clear via Preferences

Render

FileExportWhat it does
Scene.tssceneO_Scene CRUD, hierarchy
Camera.tscameraView/projection matrices
Render.tsrenderProjection pipeline, draw calls
Animation.tsanimationrAF loop, tick callbacks
Setup.tsinitScene setup

Signals

FileExportWhat it does
Events.tseUnified mouse event handlers (DOM)
Events_3D.tse3Canvas mouse events → rotation, hover
Mouse_Timer.tsMouse_TimerLong-click, double-click timing

State

FileWhat it does
S_Mouse.tsMouse event state encapsulation
S_Hit_Target.tsHit target state for spatial indexing
S_Component.tsComponent state for hit detection

Runtime

FileWhat it does
Identifiable.tsBase class with id and hid
Smart_Object.tsGeometry with attributes, wraps O_Scene

Types

FileWhat it does
Angle.tsAngle class, quadrant/orientation enums
Attribute.tsName/value pairs for Smart Objects
Coordinates.tsPoint, Size, Rect, Point3, etc.
Enumerations.tsApp-wide enums, T_Hit_3D
Interfaces.tsProjected, O_Scene interfaces
Types.tsType aliases, callbacks